package com.bbva.kyfb.firmas.servicios;

import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.ComponentsForSignRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.DeletedFilesResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoComponentDetail;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoComponentRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoComponentsResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileAuditRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileAuditResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileDetailedRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileFirResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFileResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoFilteredSignersRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoReferenceRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoSignersRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.InfoToDeleteRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.NewFileRequest;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.SignedComponentsResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.SignerUsersResponse;
import com.bbva.kyfb.kyfbdto.firmas.fachada.v01.SignerUsersResponseRealized;

public interface ServicioFirmasV01 {
	
	public InfoFileFirResponse getComponentesPendientesReferencia(InfoFileRequest info);
	public SignerUsersResponseRealized getUsuariosFirmaRealizada(InfoSignersRequest info);
	public SignerUsersResponse getUsuariosFirmaPendiente (InfoFilteredSignersRequest info);
	public InfoFileResponse getComponentesPendientesReferenciaUsuario(InfoFileDetailedRequest info);
	public InfoFileAuditResponse getAuditoriaComponentePendiente(InfoFileAuditRequest info);
	public InfoComponentsResponse getListaComponentesFirmables (InfoReferenceRequest info);
	public DeletedFilesResponse  deleteComponentePendiente (InfoToDeleteRequest info);
	public String createNuevoComponente (NewFileRequest newFile);
	public SignedComponentsResponse putFirmaComponente(ComponentsForSignRequest components);
	public InfoComponentDetail getDetalleComponente(InfoComponentRequest info);

}
